Traditional join processing relies on string equality comparisons of values (e.g., joining of two tables). While equi-joins work well in heavily curated relational database or data warehousing settings where data are extensively cleansed and transformed into suitable formats, typically a user has to manually find an intermediate mapping table to perform the desired join. Further, in most scenarios, there may not be a single intermediate mapping table that can cover all desired join pairs. In examples in which at least two data sets are to be joined, if the values in the data sets are related but in different representations, then the join processing cannot be performed without manually finding an intermediate mapping table or manually joining the values in the data sets. The existing systems for performing join processing are inconvenient, time-consuming, and even infeasible to use under some circumstances.